home *** CD-ROM | disk | FTP | other *** search
/ HPAVC / HPAVC CD-ROM.iso / PWAEEM11.ZIP / EEOM.PPE (.txt) < prev    next >
PCBoard Programming Language Executable  |  1995-01-02  |  8KB  |  569 lines

  1. ;------------------------------------------------------------------------------
  2. ;                                                   .ss.
  3. ;                                                   `²²'
  4. ;             .,sS$Ss,,s$  .,sS$$$Ss.  .,sS$Ss,,s$ .ss.  .sSs.
  5. ;           .d$$²^°²$$$$'.d$P²°^^²$P'.d$$²^°²$$$$'.$$$' .$$$²Sb,.
  6. ;           $$$'   .$$$' $$$²Sçsµ²' .$$$'   .$$$'.$$$' .$$$'  `$$b.
  7. ;           $$$b,,d$$$' ,$$$b,....,s$$$$b,,d$$$'.$$$;.,$$$'    ;$$$
  8. ;           `²S$$S²²S$$S²°²S$$$$S²°°²S$$$$$$',$$S²°²S$S'.sS$$$P²'
  9. ;                                    .sS²°$$$²²°"'       d²°'
  10. ;                                  .$$²  .$$'
  11. ;                                  $$$.,d$$'
  12. ;                                  `²S$$S²'
  13. ;------------------------------------------------------------------------------
  14. ; P.P.L.X. 2.OO                          (C)1996 - Lone Runner / AEGiS CoRP'96 
  15. ;------------------------------------------------------------------------------
  16. ; PPE 3.O1 (Encryption type I) - Analysis ON - Postprocessing ON
  17. ;------------------------------------------------------------------------------
  18.  
  19.     Boolean  BOOLEAN001
  20.     Boolean  BOOLEAN002
  21.     Boolean  BOOLEAN003
  22.     Boolean  BOOLEAN004
  23.     String   STRING001
  24.     String   STRING002
  25.     String   STRING003
  26.     String   TSTRING004(9)
  27.     String   TSTRING005(9)
  28.     String   STRING006
  29.     String   STRING007
  30.     String   STRING008
  31.     String   STRING009
  32.     String   STRING010
  33.     String   STRING011
  34.     String   STRING012
  35.     String   STRING013
  36.     String   STRING014
  37.     String   STRING015
  38.     String   STRING016
  39.     String   STRING017
  40.     String   STRING018
  41.     String   STRING019
  42.     String   STRING020
  43.     String   STRING021
  44.     Time     TIME001
  45.     Time     TIME002
  46.     Int      TINT001(9)
  47.     Int      INT002
  48.     Int      INT003
  49.     Int      INT004
  50.     Int      INT005
  51.     Int      INT006
  52.     Int      INT007
  53.     Int      INT010
  54.     Int      INT012
  55.     Int      INT013
  56.     Declare  Procedure PROC001()
  57.     Declare  Procedure PROC002()
  58.     Declare  Procedure PROC003()
  59.     Declare  Procedure PROC004()
  60.     Declare  Procedure PROC005()
  61.     Declare  Procedure PROC006()
  62.     Declare  Procedure PROC007()
  63.     Declare  Procedure PROC008(Int INT014, Int INT015)
  64.     Declare  Procedure PROC009(Int INT008, Int INT009)
  65.     Declare  Procedure PROC010(Int INT011)
  66.  
  67. ;------------------------------------------------------------------------------
  68.  
  69.     PROC001()
  70.     PROC002()
  71.     PROC003()
  72.     PROC005()
  73.     End
  74.  
  75. ;------------------------------------------------------------------------------
  76.  
  77.     Procedure PROC004()
  78.  
  79.     Int      INT004
  80.  
  81.     Print STRING006
  82.     For INT004 = 1 To 8
  83.         TINT001(INT004) = GetX()
  84.         Print TSTRING004(INT004) + Space(INT002)
  85.     Next
  86.  
  87.     EndProc
  88.  
  89.  
  90. ;------------------------------------------------------------------------------
  91.  
  92.     Procedure PROC005()
  93.  
  94.     Int      INT005
  95.     Int      INT006
  96.     Int      INT007
  97.     Boolean  BOOLEAN003
  98.     Time     TIME001
  99.     Time     TIME002
  100.  
  101.     INT006 = 1
  102.     INT005 = 1
  103.     If (INT003) Then
  104.         TIME001 = Time()
  105.         KbdChkOff
  106.     Endif
  107.     PROC004()
  108.     PROC008(INT005, INT006)
  109.     BOOLEAN003 = 0
  110.     :LABEL001
  111.     If (BOOLEAN003) Goto LABEL002
  112.     If (INT003) Then
  113.         TIME002 = Time()
  114.         If (TIME002 - TIME001 > 60 * INT003) Then
  115.             Newline
  116.             DispText 55, 32768 + 2048 + 256 + 128
  117.             Bye
  118.         Endif
  119.     Endif
  120.     INT007 = Asc(Inkey())
  121.     If ((((((INT007 == 82) || (INT007 == 68)) || (INT007 == 54)) || (INT007 == 56)) || (INT007 == 32)) || (INT007 == 62)) Then
  122.         INT006 = INT005
  123.         Inc INT005
  124.         If (INT005 > 8) INT005 = 1
  125.         PROC008(INT005, INT006)
  126.     ElseIf ((((((INT007 == 76) || (INT007 == 85)) || (INT007 == 52)) || (INT007 == 50)) || (INT007 == 9)) || (INT007 == 60)) Then
  127.         INT006 = INT005
  128.         Dec INT005
  129.         If (INT005 < 1) INT005 = 8
  130.         PROC008(INT005, INT006)
  131.     Else
  132.         Select Case (INT007)
  133.             Case 99, 67
  134.                 INT006 = INT005
  135.                 INT005 = 1
  136.                 PROC008(INT005, INT006)
  137.                 If (BOOLEAN002) BOOLEAN003 = 1
  138.             Case 100, 68
  139.                 INT006 = INT005
  140.                 INT005 = 2
  141.                 PROC008(INT005, INT006)
  142.                 If (BOOLEAN002) BOOLEAN003 = 1
  143.             Case 106, 74
  144.                 INT006 = INT005
  145.                 INT005 = 3
  146.                 PROC008(INT005, INT006)
  147.                 If (BOOLEAN002) BOOLEAN003 = 1
  148.             Case 107, 75
  149.                 INT006 = INT005
  150.                 INT005 = 4
  151.                 PROC008(INT005, INT006)
  152.                 If (BOOLEAN002) BOOLEAN003 = 1
  153.             Case 110, 78
  154.                 INT006 = INT005
  155.                 INT005 = 5
  156.                 PROC008(INT005, INT006)
  157.                 If (BOOLEAN002) BOOLEAN003 = 1
  158.             Case 114, 82
  159.                 INT006 = INT005
  160.                 INT005 = 6
  161.                 PROC008(INT005, INT006)
  162.                 If (BOOLEAN002) BOOLEAN003 = 1
  163.             Case 115, 83
  164.                 INT006 = INT005
  165.                 INT005 = 7
  166.                 PROC008(INT005, INT006)
  167.                 If (BOOLEAN002) BOOLEAN003 = 1
  168.             Case 43, 93
  169.                 INT006 = INT005
  170.                 If (BOOLEAN002) Then
  171.                     INT005 = 9
  172.                     BOOLEAN003 = 1
  173.                 Else
  174.                     INT005 = 8
  175.                 Endif
  176.                 PROC008(INT005, INT006)
  177.             Case 45, 91
  178.                 INT006 = INT005
  179.                 If (BOOLEAN002) Then
  180.                     INT005 = 10
  181.                     PROC008(INT005, INT006)
  182.                     BOOLEAN003 = 1
  183.                 Else
  184.                     INT005 = 8
  185.                 Endif
  186.                 PROC008(INT005, INT006)
  187.             Case 13
  188.                 BOOLEAN003 = 1
  189.             Case 63
  190.                 PROC006()
  191.                 INT005 = 0
  192.                 BOOLEAN003 = 1
  193.             Case 33
  194.                 PROC007()
  195.                 PROC004()
  196.                 PROC008(INT005, INT006)
  197.             Case 0
  198.                 INT006 = INT005
  199.                 INT005 = 8
  200.                 PROC008(INT005, INT006)
  201.                 If (BOOLEAN002) BOOLEAN003 = 1
  202.             Endif
  203.     End Select
  204.     Goto LABEL001
  205.     :LABEL002
  206.     PROC009(INT005, INT007)
  207.  
  208.     EndProc
  209.  
  210.  
  211. ;------------------------------------------------------------------------------
  212.  
  213.     Procedure PROC007()
  214.  
  215.     String   STRING019
  216.  
  217.     STRING019 = "@X0FEnhanced End of Message v1.1 by Drew [PWA]@X07"
  218.     Print Chr(13)
  219.     ClrEol
  220.     Print Chr(13)
  221.     Print Space((79 - Len(StripAtx(STRING019))) / 2) + STRING019
  222.     Delay 35
  223.     Print Chr(13)
  224.     ClrEol
  225.     Print Chr(13)
  226.  
  227.     EndProc
  228.  
  229.  
  230. ;------------------------------------------------------------------------------
  231.  
  232.     Procedure PROC009(Int INT008, Int INT009)
  233.  
  234.     Int      INT010
  235.  
  236.     Print Chr(13)
  237.     ClrEol
  238.     INT010 = 3
  239.     Select Case (INT008)
  240.         Case 0
  241.             Print STRING007
  242.             Print STRING018
  243.             KbdStuff Chr(13)
  244.         Case 1
  245.             Print STRING007
  246.             Print STRING009
  247.             KbdStuff Chr(13)
  248.         Case 2
  249.             Print STRING007
  250.             Print STRING010
  251.             KbdStuff "D"
  252.         Case 3
  253.             Print STRING007
  254.             Print STRING011
  255.             KbdStuff "J"
  256.         Case 4
  257.             Print STRING007
  258.             Print STRING012
  259.             KbdStuff "K"
  260.         Case 5
  261.             Print STRING007
  262.             Print STRING013
  263.             KbdStuff "N"
  264.         Case 6
  265.             Print STRING007
  266.             Print STRING014
  267.             KbdStuff "RE"
  268.         Case 7
  269.             Print STRING007
  270.             Print STRING015
  271.             KbdStuff "SKIP"
  272.         Case 8
  273.             PROC010(INT009)
  274.             INT010 = 0
  275.         Case 9
  276.             Print STRING007
  277.             Print STRING016
  278.             KbdStuff "+"
  279.         Case 10
  280.             Print STRING007
  281.             Print STRING017
  282.             KbdStuff "-"
  283.     End Select
  284.     Delay INT010
  285.  
  286.     EndProc
  287.  
  288.  
  289. ;------------------------------------------------------------------------------
  290.  
  291.     Procedure PROC010(Int INT011)
  292.  
  293.     String   STRING020
  294.     String   STRING021
  295.     Boolean  BOOLEAN004
  296.     Int      INT012
  297.     Int      INT013
  298.  
  299.     Print STRING008
  300.     INT013 = GetX() - 1
  301.     If (INT011 <> 13) Then
  302.         Print Chr(INT011)
  303.         STRING020 = Chr(INT011)
  304.     Endif
  305.     INT012 = 1
  306.     BOOLEAN004 = 0
  307.     :LABEL003
  308.     If (BOOLEAN004) Goto LABEL004
  309.     STRING021 = Inkey()
  310.     Select Case (Asc(STRING021))
  311.         Case 13
  312.             If (STRING020 == "") Then
  313.                 STRING020 = Chr(13)
  314.                 Print STRING009
  315.             Endif
  316.             BOOLEAN004 = 1
  317.         Case 27, 21
  318.             Print Chr(13)
  319.             Forward INT013
  320.             ClrEol
  321.             Print Chr(13)
  322.             Forward INT013
  323.             INT012 = 0
  324.             STRING020 = ""
  325.         Case 8
  326.             If (INT012 > 0) Then
  327.                 Print STRING021 + " " + STRING021
  328.                 Dec INT012
  329.                 STRING020 = Left(STRING020, Len(STRING020) - 1)
  330.             Endif
  331.         Case InStr(Mask_AlNum(), STRING021)
  332.         Case 79 - Len(StripAtx(STRING008))
  333.             Print STRING021
  334.             Inc INT012
  335.             STRING020 = STRING020 + STRING021
  336.     End Select
  337.     Goto LABEL003
  338.     :LABEL004
  339.     If (Lower(STRING020) == "h") Then
  340.         KbdStuff "he"
  341.     ElseIf (STRING020 == "") Then
  342.         KbdStuff Chr(13)
  343.     Else
  344.         KbdStuff STRING020
  345.     Endif
  346.  
  347.     EndProc
  348.  
  349.  
  350. ;------------------------------------------------------------------------------
  351.  
  352.     Procedure PROC006()
  353.  
  354.     If (Exist(PPEPath() + "EEOM.HLP")) Then
  355.         DispFile PPEPath() + "EEOM.HLP", 0
  356.         KbdStuff "/"
  357.     Endif
  358.  
  359.     EndProc
  360.  
  361.  
  362. ;------------------------------------------------------------------------------
  363.  
  364.     Procedure PROC003()
  365.  
  366.     If (Exist(PPEPath() + "EEOM.PCB")) Then
  367.         DispFile PPEPath() + "EEOM.PCB", 0
  368.     Endif
  369.  
  370.     EndProc
  371.  
  372.  
  373. ;------------------------------------------------------------------------------
  374.  
  375.     Procedure PROC008(Int INT014, Int INT015)
  376.  
  377.     Print Chr(13)
  378.     Forward TINT001(INT015) - 1
  379.     Print TSTRING004(INT015)
  380.     Print Chr(13)
  381.     Forward TINT001(INT014) - 1
  382.     Print TSTRING005(INT014)
  383.  
  384.     EndProc
  385.  
  386.  
  387. ;------------------------------------------------------------------------------
  388.  
  389.     Procedure PROC002()
  390.  
  391.     If (BOOLEAN001) Then
  392.         GetUser
  393.         If ((GetY() >= U_PageLen) && ((U_Cls == 0) || ((U_Cls == 1) && (U_Scroll == 1)))) Then
  394.             Wait
  395.         Endif
  396.     Endif
  397.  
  398.     EndProc
  399.  
  400.  
  401. ;------------------------------------------------------------------------------
  402.  
  403.     Procedure PROC001()
  404.  
  405.     Int      INT016
  406.  
  407.     STRING001 = PPEPath() + "EEOM.CFG"
  408.     STRING002 = PPEPath() + "LB.CFG"
  409.     STRING003 = PPEPath() + "STRINGS.CFG"
  410.     If (Exist(STRING002)) Then
  411.         INT002 = S2I(ReadLine(STRING002, 1), 10)
  412.         For INT016 = 1 To 8
  413.             TSTRING004(INT016) = ReadLine(STRING002, 1 + INT016 * 2 - 1)
  414.             TSTRING005(INT016) = ReadLine(STRING002, 1 + INT016 * 2)
  415.         Next
  416.     Else
  417.         INT002 = 0
  418.         TSTRING004(1) = "@X08 Cont @X07"
  419.         TSTRING005(1) = "@X4F CONT @X07"
  420.         TSTRING004(2) = "@X08 Dload @X07"
  421.         TSTRING005(2) = "@X4F DLOAD @X07"
  422.         TSTRING004(3) = "@X08 Jump @X07"
  423.         TSTRING005(3) = "@X4F JUMP @X07"
  424.         TSTRING004(4) = "@X08 Kill @X07"
  425.         TSTRING005(4) = "@X4F KILL @X07"
  426.         TSTRING004(5) = "@X08 Nomore @X07"
  427.         TSTRING005(5) = "@X4F NOMORE @X07"
  428.         TSTRING004(6) = "@X08 Reply @X07"
  429.         TSTRING005(6) = "@X4F REPLY @X07"
  430.         TSTRING004(7) = "@X08 Skip @X07"
  431.         TSTRING005(7) = "@X4F SKIP @X07"
  432.         TSTRING004(8) = "@X08 Other @X07"
  433.         TSTRING005(8) = "@X4F OTHER @X07"
  434.     Endif
  435.     If (Exist(STRING001)) Then
  436.         If (Lower(ReadLine(STRING001, 1)) == "yes") Then
  437.             BOOLEAN002 = 1
  438.         Else
  439.             BOOLEAN002 = 0
  440.         Endif
  441.         If (Lower(ReadLine(STRING001, 2)) == "yes") Then
  442.             BOOLEAN001 = 1
  443.         Else
  444.             BOOLEAN001 = 0
  445.         Endif
  446.     Else
  447.         BOOLEAN002 = 1
  448.         BOOLEAN001 = 1
  449.     Endif
  450.     If (Exist(STRING003)) Then
  451.         STRING006 = ReadLine(STRING003, 1)
  452.         STRING007 = ReadLine(STRING003, 2)
  453.         STRING008 = ReadLine(STRING003, 3)
  454.         STRING009 = ReadLine(STRING003, 4)
  455.         STRING010 = ReadLine(STRING003, 5)
  456.         STRING011 = ReadLine(STRING003, 6)
  457.         STRING012 = ReadLine(STRING003, 7)
  458.         STRING013 = ReadLine(STRING003, 8)
  459.         STRING014 = ReadLine(STRING003, 9)
  460.         STRING015 = ReadLine(STRING003, 10)
  461.         STRING016 = ReadLine(STRING003, 11)
  462.         STRING017 = ReadLine(STRING003, 12)
  463.         STRING018 = ReadLine(STRING003, 13)
  464.     Else
  465.         STRING006 = "@X0FMsg #: @X08[@X0F@CURMSGNUM@@X08] [@X0F+@X08/@X0F-@X08/@X0F?@X08] @X07"
  466.         STRING007 = "@X0FExecuting Msg Cmd: @X07"
  467.         STRING008 = "@X0FOther Msg Cmd: @X07"
  468.         STRING009 = "@X04Continue message read...@X07"
  469.         STRING010 = "@X04Download message...@X07"
  470.         STRING011 = "@X04Jump conference@X07"
  471.         STRING012 = "@X04Killing message #@CURMSGNUM@@X07"
  472.         STRING013 = "@X04No more (quit)@X07"
  473.         STRING014 = "@X04Reply to message #@CURMSGNUM@@X07"
  474.         STRING015 = "@X04Skip conference...@X07"
  475.         STRING016 = "@X04Continuing forward...@X07"
  476.         STRING017 = "@X04Continuing backward...@X07"
  477.         STRING018 = "@X04Re-reading message...@X07"
  478.     Endif
  479.     INT003 = ReadLine(PCBDat(), 89)
  480.  
  481.     EndProc
  482.  
  483.  
  484. ;------------------------------------------------------------------------------
  485. ;
  486. ; Usage report (before postprocessing)
  487. ;
  488. ; ■ Statements used :
  489. ;
  490. ;    1       End
  491. ;    4       ClrEol
  492. ;    1       Wait
  493. ;    95      Goto 
  494. ;    120     Let 
  495. ;    39      Print 
  496. ;    64      If 
  497. ;    2       DispFile 
  498. ;    1       GetUser
  499. ;    2       Delay 
  500. ;    2       Inc 
  501. ;    2       Dec 
  502. ;    1       Newline
  503. ;    1       DispText 
  504. ;    14      KbdStuff 
  505. ;    1       Bye
  506. ;    1       KbdChkOff
  507. ;    4       Forward 
  508. ;    10      EndProc
  509. ;
  510. ;
  511. ; ■ Functions used :
  512. ;
  513. ;    3       *
  514. ;    1       /
  515. ;    20      +
  516. ;    8       -
  517. ;    56      ==
  518. ;    1       <>
  519. ;    4       <
  520. ;    2       <=
  521. ;    4       >
  522. ;    5       >=
  523. ;    54      !
  524. ;    6       &&
  525. ;    24      ||
  526. ;    3       Len(
  527. ;    3       Lower()
  528. ;    1       Left()
  529. ;    2       Space()
  530. ;    15      Chr()
  531. ;    5       Asc()
  532. ;    2       InStr()
  533. ;    2       Time()
  534. ;    2       StripAtx()
  535. ;    2       Inkey()
  536. ;    1       Mask_AlNum()
  537. ;    1       Mask_Ascii()
  538. ;    1       PCBDat()
  539. ;    7       PPEPath()
  540. ;    19      ReadLine()
  541. ;    5       Exist()
  542. ;    1       S2I()
  543. ;    2       GetX()
  544. ;    1       GetY()
  545. ;
  546. ;------------------------------------------------------------------------------
  547. ;
  548. ; Analysis flags : d
  549. ;
  550. ; d - Access PCBOARD.DAT ■ 2
  551. ;     Program gets the full pathname to PCBOARD.DAT, this may be usefull
  552. ;     for many PPE so they can find various informations on the system
  553. ;     (system paths, max number of lines in messages, ...) but it may also
  554. ;     be a way to gather vital informations.
  555. ;     ■ Search for : PCBDAT()
  556. ;
  557. ;------------------------------------------------------------------------------
  558. ;
  559. ; Postprocessing report
  560. ;
  561. ;    2       For/Next
  562. ;    0       While/EndWhile
  563. ;    21      If/Then or If/Then/Else
  564. ;    3       Select Case
  565. ;
  566. ;------------------------------------------------------------------------------
  567. ;                 AEGiS Corp - Break the routines, code against the machines!
  568. ;------------------------------------------------------------------------------
  569.